package com.ocm.tourism.core.jdbc;

import java.util.List;

import com.ocm.tourism.core.domain.Business;
import com.ocm.tourism.core.domain.BusinessType;
import com.ocm.tourism.core.domain.CulinaryCulture;
import com.ocm.tourism.core.domain.FoodStall;
import com.ocm.tourism.core.domain.Hotel;
import com.ocm.tourism.core.domain.ScheduleTour;
import com.ocm.tourism.core.domain.TourType;

public interface AdvertisementDb {

   List<Business> getBusinessViewest(int firstResult, int maxResults, BusinessType... businessTypes);

   List<Hotel> getSaleOffHotels(int firstResult, int maxResults);

   long countSaleOffHotels();

   List<CulinaryCulture> getRestaurantAdvs(int firstResult, int maxResults);
   
   List<CulinaryCulture> getCoffeeAdvs(int firstResult, int maxResults);

   List<FoodStall> getFoodStallAdvs(int firstResult, int maxResults);

   List<FoodStall> getFoodStallAdvs(int firstResult, int maxResults, int periodTime);
   
   long countFoodStallAdvs(int periodtime);

   long countFoodStallAdvs();

   long countTayNinhTourAdvs();

   long countOtherTayNinhTourAdvs();

   long countToursByTourType(TourType tourType);
   
   long countBusinessViewest(BusinessType... businessTypes);

   List<ScheduleTour> getTayNinhTourAdvs(int firstResult, int maxResults);
   
   List<ScheduleTour> getOtherTayNinhTourAdvs(int firstResult, int maxResults);

   List<ScheduleTour> getToursByTourType(TourType tourType, int firstResult, int maxResults);
}
